在 ASP.NET 或是 C# 程式裡,如果你的網站有需要把資料匯出的功能,可以使用 ClosedXML 幫我們操作或是建立 Excel 檔案。而這個套件的核心是使用 Open XML SDK ,所以只支援的格式為.xlsx
使用 NuGet 來安裝
而 Closed Excel 的操作非常的簡單,一個蘿菠一個坑,一個口令一個動作。簡單易懂:
// 建立活頁簿
IXLWorkbook workbook = new XLWorkbook();
// 建立工作表
IXLWorksheet worksheet = workbook.Worksheets.Add("我是工作表的名稱");
worksheet.Cell(1, 2).Value = "第一列第二欄";
worksheet.Cell("A1").Value = "A欄第一列";
// 儲存
workbook.SaveAs(@"d:\test.xlsx");
int i = 1;
foreach(var value in arr)
{
worksheet.Cell(i, 3).Value = value;
i++;
}
XLWorkbook workbook = new XLWorkbook(@"d:\test.xlsx");
寫到 memoryStream ,再作下載,不過 xlsx
的 Content-Type 又臭又長。
[HttpGet]
public ActionResult GetFile(string name)
{
IXLWorkbook workbook = new XLWorkbook();
IXLWorksheet worksheet = workbook.Worksheets.Add("我是工作表的名稱");
worksheet.Cell(1, 1).Value = name;
using (var memoryStream = new MemoryStream())
{
workbook.SaveAs(memoryStream);
return File(memoryStream.ToArray(),
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
"Test.xlsx");
}
}